package com.mmy.dao.line;

import java.util.List;

import javax.transaction.Transactional;

import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;

import com.mmy.domain.line.TLineTrip;

public interface TLineTripRepository extends JpaRepository<TLineTrip, Integer> {

	/**
	 * 函数功能说明：获得最大行程编码
	 *
	 * @param 参数说明
	 * @return 返回值说明 Object
	 * @throws 异常处理说明
	 * @author 创建人 hanxl 修改人 shangzl
	 * @date 创建日期 修改时间 2020.11.18
	 */
	@Query(value = "select MAX(iTripID) from tLineTrip", nativeQuery = true)
	Object getMaxTripID();

	/**
	 * 函数功能说明：创建行程单
	 *
	 * @param 参数说明
	 * @return 返回值说明 无返回值
	 * @throws 异常处理说明
	 * @author 创建人 hanxl 修改人 shangzl
	 * @date 创建日期 修改时间 2020.11.18
	 */
	@Transactional
	@Modifying
	@Query(value = "INSERT INTO tLineTrip(iTripID, iLineID, iDay, cAddress, cStay, cMeal, cTrip, cHotelPath1, cHotelPath2, cHotelPath3, cHotelPath4, cScenicPath1, cScenicPath2, cScenicPath3, cScenicPath4, dCreateDate, cCreator, dModifyDate, cReviser, cMemo, cSpare1, cSpare2, cSpare3, cSpare4, cSpare5) VALUES (?1, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL)", nativeQuery = true)
	void save(int tripID);

	/**
	 * 函数功能说明：查询该线路的行程表 升序排列
	 *
	 * @param 参数说明
	 * @return 返回值说明 线路行程集合
	 * @throws 异常处理说明
	 * @author 创建人 hanxl 修改人 shangzl
	 * @date 创建日期 修改时间 2020.11.18
	 */
	@Query(value = "select * from tLineTrip where iLineID=?1 ORDER by iDay ASC", nativeQuery = true)
	List<TLineTrip> findByLineID(int iLineID);

	/**
	 * 函数功能说明：删除该LineID线路行程
	 *
	 * @param 参数说明
	 * @return 返回值说明 无返回值
	 * @throws 异常处理说明
	 * @author 创建人 hanxl 修改人 shangzl
	 * @date 创建日期 修改时间 2020.11.18
	 */
	@Transactional
	@Modifying
	@Query(value = "delete from tLineTrip where iLineID =?1", nativeQuery = true)
	void deleteByLineID(int LineID);
	
	/**
	 * 函数功能说明：删除线路集合的行程
	 *
	 * @param 参数说明
	 * @return 返回值说明 无返回值
	 * @throws 异常处理说明
	 * @author 创建人 liys
	 * @date 创建日期 修改时间 2021.01.27
	 */
	@Transactional
	@Modifying
	@Query(value = "delete from tLineTrip where iLineID in(?1)", nativeQuery = true)
	void delByLineIdList(List<Integer> lstLineID);
}
